//核心功能
//全局异常处理：通过 @RestControllerAdvice 注解标记的类，可以拦截整个应用中所有控制器（@RestController）抛出的异常。
//统一错误响应：当发生 RuntimeException 时，会返回一个结构化的错误结果（Result.fail("服务器异常")），而不是暴露堆栈信息给客户端。
package com.hmdp.config;

import com.hmdp.dto.Result;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

//这段代码是一个 Spring 的全局异常处理器，它的主要作用是捕获和处理应用程序中抛出的运行时异常（RuntimeException），并以统一的格式返回给客户端。

//@Slf4j
//Lombok 提供的注解，自动生成日志对象 log，用于记录异常信息。
//@RestControllerAdvice
//Spring 提供的注解，组合了 @ControllerAdvice 和 @ResponseBody，表示这是一个全局异常处理器，并且返回值直接写入 HTTP 响应体（适合 REST API）。
//@ExceptionHandler(RuntimeException.class)
//指定该方法处理 RuntimeException 及其子类异常（如 NullPointerException、IllegalArgumentException 等）。

@Slf4j
@RestControllerAdvice
public class WebExceptionAdvice {

    @ExceptionHandler(RuntimeException.class)
    public Result handleRuntimeException(RuntimeException e) {
        log.error(e.toString(), e);
        return Result.fail("服务器异常");
    }
}
